package controller;

import core.BlogException;
import core.Uzivatel;
import java.io.Serializable;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import model.UzivatelModel;

/**
 * Managed Beana pro Uzivatele
 * @author vojta
 */
@ManagedBean(name="UzivateleBean")
@RequestScoped
public class UzivateleBean extends Uzivatel implements Serializable{
    

    @Override
    public void setLogin(String login) {
        super.setLogin(login);
    }

    private String heslo1;

    public String getHeslo1() {
        return heslo1;
    }

    public void setHeslo1(String heslo1) {
        this.heslo1 = heslo1;
    }
          
    /**
     * Ziska vsechny uzivatele
     * @return  List<Uzivatel>
     */
    public List<Uzivatel> getUzivatele() {
        List<Uzivatel> list = null;
        try {
            UzivatelModel model = new UzivatelModel();                     
            list = model.getUzivatele();        
            
        } catch (BlogException ex) {
            System.err.println("Spadlo to... ziskavani uzivatelu");
        }
        return list;
    }
    
    /**
     * Prida noveho uzivatele
     * @return 
     */
    public String addUzivatele() {
        try {
            if (heslo1.equals(this.getHeslo())){
                UzivatelModel model = new UzivatelModel();                     
                Uzivatel u = new Uzivatel();
                u.setLogin(this.getLogin());
                u.setHeslo(heslo1);
                u.setZobrazovaneJmeno(this.getZobrazovaneJmeno());
                    
                model.addUzivatel(u);
                FacesContext.getCurrentInstance().addMessage("pridatU:heslo1", new FacesMessage("Úspěch: Uživatel byl úspěšně přidán!"));
                return "spravovatUzivatele";
            }else {
                System.out.println("************************** Hesla nejsou stejna! *************************************");
                 FacesContext.getCurrentInstance().addMessage("pridatU:heslo1", new FacesMessage("Chyba: Hesla se neshodují!"));
                return "spravovatUzivatele";
            }
            
            
        } catch (BlogException ex) {
            System.err.println("Spadlo to... pridavani uzivatele");
            return "spravovatUzivatele";
        }
    }
    
    /**
     * Odstani uzivatele
     * @param login - login uzivatele na odstraneni
     * @return 
     */
    public String removeUzivatel(String login) {
        try {
            UzivatelModel model = new UzivatelModel();
            Uzivatel u = new Uzivatel();
            u.setLogin(login);
            model.removeUzivatel(u);
            
            FacesContext.getCurrentInstance().addMessage("pridatU:heslo1", new FacesMessage("Uspech: Uživatel byl úspěšně odstraněn."));
            return "spravovatUzivatele";
        } catch (BlogException ex) {
            FacesContext.getCurrentInstance().addMessage("pridatU:heslo1", new FacesMessage("Chyba: Nastala chyba při odstraňování uřivatele."));
            return "spravovatUzivatele";
        }
        
    }
}
